home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / FALCON / ACC / OUTLINE.ACC / MAINSTUF.C < prev    next >
Encoding:
C/C++ Source or Header  |  2001-02-10  |  16.0 KB  |  736 lines

  1. /*==========================================================================
  2.  * FILE: MAINSTUF.C
  3.  *==========================================================================
  4.  * DATE: December 7, 1992    Combine the Bitmap and outline fonts together...
  5.  *       December 15, 1992    AAAAGGGHHH - Remove the Bitmap Stuff again...
  6.  *     January  14, 1993    Changed to the new 3D format...
  7.  *
  8.  * DESCRIPTION: Fonts ACC
  9.  * COMPILER: TURBO C Version 2.0
  10.  */
  11.  
  12.  
  13. /* INCLUDE FILES
  14.  *==========================================================================
  15.  */
  16. #include <sys\gemskel.h>
  17. #include <tos.h>
  18.  
  19.  
  20.  
  21. #include "country.h"
  22. #include "fonts.h"
  23. #include "fonthead.h"
  24.  
  25. #pragma warn -apt           /* 1 Non-portable pointer assignment */
  26. #pragma warn -rpt           /* 1 Non-portable pointer conversion */
  27. #include "fonts.rsh"
  28. #pragma warn .apt
  29. #pragma warn .rpt
  30.  
  31. #include "fixrsh.h"
  32. #include "xform_do.h"
  33. #include "windows.h"
  34. #include "front.h"
  35. #include "text.h"
  36. #include "inactive.h"
  37. #include "options.h"
  38. #include "path.h"
  39. #include "points.h"
  40. #include "custom.h"
  41. #include "cache.h"
  42. #include "printer.h"
  43.  
  44. /*
  45.  * TURN OFF Turbo C " parameter X is never used" warnings.
  46.  */
  47. #pragma warn -par
  48.  
  49.  
  50.  
  51. /* PROTOTYPES
  52.  *==========================================================================
  53.  */
  54. void    Activity( void );
  55. void    XDeselect( OBJECT *tree, int button );
  56. void    XSelect( OBJECT *tree, int button );
  57. void    Do3D( void );
  58. void    Make3D2( int obj );
  59. void    Make3D1( int obj );
  60. void    Make3DUpDown( int obj );
  61. void    MakeBase( int up, int down, int slide, int base, int linebase );
  62. void    MakeBoxText( int obj, int flag );
  63. void    MakeIndicator( int obj );
  64. void    MakeActivator( int obj );
  65.  
  66. void    RedrawObject( OBJECT *tree, int obj );
  67. void    RedrawBase( OBJECT *tree, int obj );
  68.  
  69.  
  70.  
  71.  
  72. /* DEFINES
  73.  *==========================================================================
  74.  */
  75. #define UNDO    0x6100
  76. #define MIN_RESOLUTION  639
  77.  
  78.  
  79. /* EXTERNALS
  80.  *==========================================================================
  81.  */
  82. extern int AES_Version;
  83. extern int gl_ncolors;
  84.  
  85.  
  86. /* GLOBALS
  87.  *==========================================================================
  88.  */
  89. OBJECT *tree; 
  90. OBJECT *ad_front;    /* tree for FRONT dialog     */
  91. OBJECT *ad_scan;    /* tree for scanning dialog  */
  92. OBJECT *ad_inactive;    /* tree for the available dialog*/
  93. OBJECT *ad_options;    /* tree for options dialog */
  94. OBJECT *ad_path;    /* tree for path dialog    */
  95. OBJECT *ad_points;    /* tree for point size dialog*/
  96. OBJECT *ad_cache;    /* tree for cache settings dialog */
  97. OBJECT *ad_load;    /* tree for loading ...*/
  98. OBJECT *ad_width;    /* tree for building width tables */
  99. OBJECT *ad_add;        /* tree for adding point size */
  100.  
  101. OBJECT *PrevTree;
  102. int    ctrl_id;        /* ACC id slot # */
  103.  
  104.  
  105.  
  106.  
  107. /* FUNCTIONS
  108.  *==========================================================================
  109.  */
  110.     
  111.  
  112. /* rsrc_init()
  113.  * =======================================================================
  114.  */
  115. BOOLEAN
  116. rsrc_init( void )            
  117. {
  118.       int i;
  119.  
  120.       if( !_app )
  121.             ctrl_id = menu_register( gl_apid, menu_title );
  122.       
  123.       fix_rsh( NUM_OBS, NUM_FRSTR, NUM_FRIMG, NUM_TREE,
  124.                rs_object, rs_tedinfo, rs_strings, rs_iconblk,
  125.                rs_bitblk, rs_frstr, rs_frimg, rs_trindex,
  126.                rs_imdope );
  127.       
  128.       ad_front   = ( OBJECT *)rs_trindex[ FRONT ];
  129.       ad_scan    = ( OBJECT *)rs_trindex[ SCAN ];
  130.       ad_inactive= ( OBJECT *)rs_trindex[ UNUSED ];
  131.       ad_options = ( OBJECT *)rs_trindex[ OPTIONS ];
  132.       ad_path    = ( OBJECT *)rs_trindex[ PATHTREE ];
  133.       ad_points  = ( OBJECT *)rs_trindex[ PNTSIZE ];
  134.       ad_cache   = ( OBJECT *)rs_trindex[ CACHE ];
  135.       ad_load     = ( OBJECT *)rs_trindex[ LOADING ];
  136.       ad_width   = ( OBJECT *)rs_trindex[ MAKEWID ];
  137.       ad_add     = ( OBJECT *)rs_trindex[ ADD ];
  138.       
  139.  
  140.       /* Minor Adjustments - to align the sliders and text boxes...*/
  141.       ActiveTree( ad_front );
  142.       for( i = LINEBASE; i <= LINE13; i++ )
  143.         ObW( i ) -= 1;
  144.  
  145.       ActiveTree( ad_inactive );
  146.       for( i = ILINE; i <= ILINE13; i++ )
  147.         ObW( i ) -= 1;
  148.  
  149.  
  150.       ActiveTree( ad_points );
  151.       for( i = PNTLINE; i <= PNTLINE5; i++ )
  152.         ObW( i ) -= 1;
  153.  
  154.  
  155.       ActiveTree( ad_front );              
  156.       PrevTree   = ( OBJECT *)NULL;
  157.       
  158.       /* Get Cookie to see if we are using at least XGDOS */
  159.       Supexec( get_cookie );
  160.  
  161.       return( TRUE );
  162. }
  163.  
  164.  
  165.  
  166. /* wind_init()
  167.  * =====================================================================
  168.  * Initialize window structure.
  169.  */
  170. void
  171. wind_init( void )
  172. {
  173.    if(( AES_Version >= 0x0330 )
  174.         && ( gl_ncolors > LWHITE ) )
  175.    {
  176.      Do3D();
  177.    }
  178.  
  179.    init_window();
  180.    Get_Default_Cache();
  181.    
  182.    if( _app )
  183.    {
  184.       if( xres >= MIN_RESOLUTION )
  185.       {
  186.         if( Create_Window() )
  187.         {
  188.           ActiveTree( ad_front );
  189.           initialize();
  190.           open_window();
  191.           graf_mouse( ARROW, 0L );
  192.           Activity();
  193.           
  194.         }
  195.         else
  196.           form_alert( 1, alert13 );
  197.       }
  198.       else
  199.       {
  200.       form_alert( 1, wider );
  201.       gem_exit( 0 );
  202.       }
  203.    }
  204. }
  205.  
  206.  
  207.  
  208. /* evnt_init()
  209.  * =====================================================================
  210.  * Initialize the evnt_multi with the proper messages, timers etc...
  211.  */
  212. void
  213. evnt_init( void )
  214. {
  215.    evnt_set( MU_MESAG, -1, -1, -1, NULL, NULL, -1L );
  216. }
  217.  
  218.  
  219.  
  220. /* Activity()
  221.  * =====================================================================
  222.  * The KEY call to enter the XFORM_DO()
  223.  */
  224. void
  225. Activity( void )
  226. {
  227.    int     quit = FALSE;
  228.    WORD button;
  229.    WORD msg[8];
  230.    
  231.    do
  232.    {
  233.        button = xform_do( tree, 0, msg );
  234.  
  235.     /* Front Tree Button Handling */
  236.     if( IsActiveTree( ad_front ) )
  237.     {
  238.         quit = handle_front( button, msg );
  239.         continue;
  240.     }    
  241.  
  242.     /* Available Fonts Tree Button Handling */
  243.     if( IsActiveTree( ad_inactive ) )
  244.     {
  245.         quit = HandleAvailable( button, msg );
  246.         continue;
  247.     }    
  248.  
  249.     /* Options Tree Button Handling */
  250.     if( IsActiveTree( ad_options ) )
  251.     {
  252.         quit = HandleOptions( button, msg );
  253.         continue;
  254.     }    
  255.     
  256.     /* Path Tree Button Handling */
  257.     if( IsActiveTree( ad_path ) )
  258.     {
  259.         quit = HandlePath( button, msg );
  260.         continue;
  261.     }    
  262.  
  263.  
  264.     /* Points Tree Button Handling */
  265.     if( IsActiveTree( ad_points ) )
  266.     {
  267.         quit = HandlePoints( button, msg );
  268.         continue;
  269.     }    
  270.  
  271.  
  272.     /* Cache Tree Button Handling */
  273.     if( IsActiveTree( ad_cache ) )
  274.     {
  275.         quit = HandleCache( button, msg );
  276.         continue;
  277.     }    
  278.  
  279.  
  280.     /* Add Pointsize Tree Button Handling */
  281.     if( IsActiveTree( ad_add ) )
  282.     {
  283.         quit = HandleAdd( button, msg );
  284.         continue;
  285.     }    
  286.     
  287.    }while( !quit );
  288.    
  289.    if( CheckAccClose() )
  290.      return;
  291.    
  292.    Wm_Closed( (int*)msg );
  293. }
  294.  
  295.  
  296.  
  297. /* do_windows()
  298.  * =====================================================================
  299.  * wndow handling.
  300.  *
  301.  * IN: int *msg:   message buffer
  302.  *     int *event: flag to end the program.
  303.  *
  304.  * OUT: void
  305.  */
  306. void
  307. do_windows( int *msg, int *event )
  308. {
  309.    switch( msg[0] )
  310.    {
  311.       case WM_REDRAW: Wm_Redraw( msg );
  312.                     break;
  313.                     
  314.       case WM_NEWTOP:
  315.       case WM_TOPPED: Wm_Topped( msg );
  316.                     break;
  317.                     
  318.       case WM_CLOSED: Wm_Closed( msg );
  319.                     break;
  320.                     
  321.       case WM_MOVED:  Wm_Moved( msg );
  322.                     break;
  323.                     
  324.       default:
  325.               break;                                  
  326.    }
  327. }
  328.  
  329.  
  330.  
  331.  
  332. /* acc_open()
  333.  * =====================================================================
  334.  * Accessory Open Messages
  335.  * 
  336.  * IN: int *msg: message buffer;
  337.  * OUT: void
  338.  *
  339.  * GLOBAL: WINFO w:   window structure
  340.  *         int   ctrl_id: application id
  341.  */
  342. void
  343. acc_open( const int *msg )
  344. {
  345.     if( msg[4] == ctrl_id )
  346.     {
  347.       if( w.id == NO_WINDOW )
  348.       {
  349.         if( xres >= MIN_RESOLUTION )
  350.     {
  351.           if( Create_Window() )
  352.           {
  353.             ActiveTree( ad_front );
  354.             initialize();
  355.             open_window();
  356.             Activity();
  357.           }
  358.           else
  359.             form_alert( 1, alert13 );
  360.     }
  361.     else
  362.             form_alert( 1, wider );
  363.       }
  364.       else
  365.         wind_set( w.id, WF_TOP );
  366.     }
  367. }
  368.  
  369.  
  370.  
  371. /* acc_close()
  372.  * =====================================================================
  373.  * Accessory Close message
  374.  *
  375.  * IN:  int *msg:    message buffer
  376.  * OUT: void
  377.  *
  378.  * GLOBAL: int ctrl_id:    application id
  379.  *         WINFO w;       window structure
  380.  *
  381.  * Closing and deleting the window are unneccesary since the window
  382.  * handles are already invalid by the time we get the acc_close() message
  383.  */
  384. void
  385. acc_close( const int *msg )
  386. {
  387.    if( ( msg[3] == ctrl_id ) && ( w.id != NO_WINDOW ) )
  388.    {
  389.        w.id = NO_WINDOW;
  390.    }
  391. }
  392.  
  393.  
  394.  
  395. /* wind_exit()
  396.  * =====================================================================
  397.  */
  398. void
  399. wind_exit( void )
  400. {
  401.    if( w.id != NO_WINDOW )
  402.    {
  403.      wind_delete( w.id );
  404.      w.id = NO_WINDOW;
  405.    }
  406. }
  407.  
  408.  
  409.  
  410. /* XDeselect()
  411.  * =====================================================================
  412.  */
  413. void
  414. XDeselect( OBJECT *tree, int button )
  415. {
  416.    GRECT rect;
  417.  
  418.    Deselect( button );
  419.    rect = ObRect( button );
  420.    objc_offset( tree, button, &rect.g_x, &rect.g_y );
  421.    rect.g_x -= 5;
  422.    rect.g_y -= 5;
  423.    rect.g_w += 10;
  424.    rect.g_h += 10;
  425.    Objc_draw( tree, button, MAX_DEPTH, &rect );
  426. }
  427.  
  428.  
  429.  
  430. /* XSelect()
  431.  * =====================================================================
  432.  */
  433. void
  434. XSelect( OBJECT *tree, int button )
  435. {
  436.    GRECT rect;
  437.  
  438.    Select( button );
  439.    rect = ObRect( button );
  440.    objc_offset( tree, button, &rect.g_x, &rect.g_y );
  441.    rect.g_x -= 5;
  442.    rect.g_y -= 5;
  443.    rect.g_w += 10;
  444.    rect.g_h += 10;
  445.    Objc_draw( tree, button, MAX_DEPTH, &rect );
  446. }
  447.  
  448. /* Do3D()
  449.  * =====================================================================
  450.  * An Ugly way to make everything 3D...
  451.  */
  452. void
  453. Do3D( void )
  454. {
  455.    /* Make the Front Dialog Box 3D.- INSTALLED FONTS */
  456.    ActiveTree( ad_front );
  457.    Make3D2( FREMOVE );
  458.    Make3D2( FCONFIG );
  459.    Make3D2( FADD );
  460.    Make3D2( FOPTIONS );
  461.    Make3D2( FSAVE );
  462.    Make3D2( FEXIT );
  463.    Make3D2( FINSTALL );
  464.    Make3DUpDown( FUP );
  465.    Make3DUpDown( FDOWN );
  466.    Make3DUpDown( FSLIDER );
  467.    MakeBase( FUP, FDOWN, FSLIDER, FBASE, LINEBASE );
  468.    MakeBoxText( FTITLE, FALSE );
  469.  
  470.    /* Make Available Fonts Dialog Box 3D */
  471.    ActiveTree( ad_inactive );
  472.    Make3D2( IINSTALL );
  473.    Make3D2( ICONFIG );
  474.    Make3D2( IEXIT );
  475.    Make3D2( ISELECT );
  476.    Make3DUpDown( IUP );
  477.    Make3DUpDown( IDOWN );
  478.    Make3DUpDown( ISLIDER );
  479.    MakeBase( IUP, IDOWN, ISLIDER, IBASE, ILINE );
  480.    MakeBoxText( ITITLE, FALSE );
  481.       
  482.    /* Make Options Dialog Box 3D */
  483.    ActiveTree( ad_options );
  484.    Make3D2( WBUILD );
  485.    Make3D2( WEXIT );
  486.    Make3D2( WCANCEL );
  487.    Make3D2( OOK );
  488.    Make3D2( OPATH );
  489.    Make3D2( OPOINT );
  490.    Make3D2( OCACHE );
  491.    Make3D2( OWIDTH );
  492.    Make3D1( WON );
  493.    Make3D1( WOFF );
  494.    MakeBoxText( OTITLE, FALSE );
  495.    ObW( OTITLE ) -= 1;
  496.    ObH( WON ) -= 2;
  497.    ObH( WOFF ) -= 2;
  498.    MakeBoxText( OTITLE3, FALSE );
  499.    ObW( OTITLE3 ) -= 1;
  500.      
  501.    /* Make Path Tree Dialog Box 3D */
  502.    ActiveTree( ad_path );
  503.    Make3D2( PEXIT );
  504.    Make3D2( PCANCEL );
  505.    Make3DUpDown( OLEFT );
  506.    Make3DUpDown( ORIGHT );
  507.    MakeBoxText( OPATHS, FALSE );
  508.    MakeBoxText( OTITLE2, FALSE );
  509.    ObW( OTITLE2 ) -= 1;
  510.    ObH( OPATHS ) = gl_hbox;
  511.    ObH( OLEFT ) = ObH( ORIGHT ) = gl_hbox;
  512.  
  513.  
  514.    /* Make Add Points Dialog Box 3D */
  515.    ActiveTree( ad_points );
  516.    Make3D2( POINTOK );
  517.    Make3D2( POINTCAN );
  518.    Make3D2( PNTADD );
  519.    Make3D2( PNTDEL );
  520.    Make3D2( PNTDEF );
  521.    Make3D1( P10 );      
  522.    Make3D1( P12 );      
  523.    Make3D1( P18 );      
  524.    Make3D1( P24 );      
  525.    Make3D1( P48 );      
  526.    Make3DUpDown( PNTUP );
  527.    Make3DUpDown( PNTDOWN );
  528.    Make3DUpDown( PNTSLIDE );
  529.    MakeBase( PNTUP, PNTDOWN, PNTSLIDE, PNTBASE, PNTLINE );
  530.    MakeBoxText( PTITLE1, FALSE );
  531.    ObW( PTITLE1 ) -= 1;
  532.    MakeBoxText( PTITLE4, FALSE );
  533.    
  534.  
  535.    /* Make Cache Dialog Box 3D */
  536.    ActiveTree( ad_cache );
  537.    Make3D2( COK );
  538.    Make3D2( CCANCEL );
  539.    Make3D2( LCACHE );
  540.    Make3D2( MCACHE );
  541.    Make3D2( SCACHE );
  542.    Make3D2( CCACHE );
  543.    MakeBoxText( CTITLE1, FALSE );
  544.    ObW( CTITLE1 ) -= 1;
  545.    MakeBoxText( CTITLE2, FALSE );
  546.    ObW( CTITLE2 ) -= 1;
  547.    MakeBoxText( TITLE2, FALSE );
  548.    ObW( TITLE2 ) -= 1;
  549.    Make3DUpDown( CUP );
  550.    Make3DUpDown( CDOWN );
  551.    Make3DUpDown( MUP );
  552.    Make3DUpDown( MDOWN );
  553.    Make3DUpDown( BUP );
  554.    Make3DUpDown( BDOWN );
  555.    ObH( CUP ) = gl_hbox - 2;
  556.    ObH( CDOWN ) = ObH( MUP ) = ObH( MDOWN ) = ObH( BUP ) = ObH( BDOWN ) = ObH( CUP );
  557.    
  558.  
  559.    /* Make add point size dialog box 3D */
  560.    ActiveTree( ad_add );
  561.    Make3D2( ADDOK );
  562.    Make3D2( ADDCAN );
  563.    MakeBoxText( ADDTITLE, FALSE );
  564.    ObW( ADDTITLE ) -= 1;
  565.    Make3DUpDown( ADDUP );
  566.    Make3DUpDown( ADDDOWN );
  567.    ObH( ADDUP ) -= 2;
  568.    ObH( ADDDOWN ) -= 2;
  569.       
  570.    /* Restore original tree */
  571.    ActiveTree( ad_front );
  572. }
  573.  
  574.  
  575. void
  576. Make3DUpDown( int obj )
  577. {
  578.    MakeActivator( obj );
  579.    ObIndex( obj ) = (LONG)( ( LONG )ObIndex( obj ) & 0xffffff70L ) | (LONG)LWHITE | 0x70L;
  580.    ObH( obj ) = gl_hbox;
  581. }
  582.  
  583.  
  584.  
  585. /* Good for Buttons */
  586. void
  587. Make3D2( int obj )
  588. {
  589.    MakeActivator( obj );
  590.    ObH( obj )  = gl_hbox;
  591.  
  592.    ObX( obj ) += 1;
  593.    ObY( obj ) += 2;
  594.    ObW( obj ) -= 2;
  595.    ObH( obj ) -= 3;
  596. }
  597.  
  598.  
  599. void
  600. Make3D1( int obj )
  601. {
  602.    MakeIndicator( obj );
  603.    ObH( obj )  = gl_hbox;
  604.  
  605.    ObX( obj ) += 1;
  606.    ObY( obj ) += 2;
  607.    ObW( obj ) -= 2;
  608.    ObH( obj ) -= 3;
  609. }
  610.  
  611.  
  612. void
  613. MakeBase( int up, int down, int slide, int base, int linebase )
  614. {
  615.     MakeActivator( base );
  616.  
  617.     ObY( up )   = ObY( linebase ) + 2;
  618.     ObY( down ) = ObY( linebase ) + ObH( linebase ) - ObH( down ) - 2;
  619.     ObX( down ) = ObX( base ) = ObX( up ) = ObX( linebase ) + ObW( linebase ) + 3;
  620.     ObW( up ) -= 3;
  621.     ObW( down ) = ObW( base ) = ObW( slide ) = ObW( up );
  622.      
  623.     ObY( base ) = ObY( up ) + ObH( up ) + 5;
  624.     ObH( base ) = ( ObY( down ) - 5 ) - ObY( base );
  625. }
  626.  
  627. void
  628. MakeBoxText( int obj, int flag )
  629. {
  630.    MakeActivator( obj );
  631.    TedColor( obj ) = ( TedColor( obj ) & 0xff70 ) | LWHITE | 0x70;
  632.    ObH( obj )  = gl_hbox;
  633.  
  634.    ObX( obj ) += 2;
  635.    if( flag )
  636.       ObY( obj ) += 2;
  637.    ObW( obj ) -= 3;
  638.    ObH( obj ) -= 3;
  639. }
  640.  
  641.  
  642.  
  643. void
  644. MakeIndicator( int obj )
  645. {
  646.    ObFlags( obj ) |= IS3DOBJ;
  647.    ObFlags( obj ) &= ~IS3DACT;
  648. }
  649.  
  650.  
  651. void
  652. MakeActivator( int obj )
  653. {
  654.    ObFlags( obj ) |= IS3DOBJ;
  655.    ObFlags( obj ) |= IS3DACT;
  656. }
  657.  
  658.  
  659.  
  660.  
  661. void
  662. RedrawObject( OBJECT *tree, int obj )
  663. {
  664.    GRECT rect;
  665.    
  666.    rect = ObRect( obj );
  667.    objc_offset( tree, obj, &rect.g_x, &rect.g_y );
  668.    rect.g_x -= 5;
  669.    rect.g_y -= 5;
  670.    rect.g_w += 10;
  671.    rect.g_h += 10;
  672.    Objc_draw( tree, ROOT, MAX_DEPTH, &rect );
  673. }
  674.  
  675.  
  676. void
  677. RedrawBase( OBJECT *tree, int obj )
  678. {
  679.    GRECT rect;
  680.    
  681.    rect = ObRect( obj );
  682.    objc_offset( tree, obj, &rect.g_x, &rect.g_y );
  683.    rect.g_x -= 1;
  684.    rect.g_y -= 1;
  685.    rect.g_w += 2;
  686.    rect.g_h += 2;
  687.    Objc_draw( tree, ROOT, MAX_DEPTH, &rect );
  688. }
  689.  
  690.  
  691.  
  692.  
  693. #if 0
  694. void    test( void );
  695.  
  696. test();
  697.  
  698.  
  699. void
  700. test( void )
  701. {
  702.    form_alert( 1, alert13 );
  703.    form_alert( 1, alerte11 );
  704.    form_alert( 1, alert56 );
  705.    form_alert( 1, alert58 );
  706.    form_alert( 1, alert2 );
  707.    form_alert( 1, alert3 );
  708.    form_alert( 1, alert10 );
  709.    form_alert( 1, alert12 );
  710.    form_alert( 1, wider );
  711.    form_alert( 1, alert17 );
  712.    form_alert( 1, alert18 );
  713.    form_alert( 1, alert19 );
  714.    form_alert( 1, alert21 );
  715.    form_alert( 1, alert22 );
  716.    form_alert( 1, alertw3 );
  717.    form_alert( 1, alertw16 );
  718.    form_alert( 1, alertw4 );
  719.    form_alert( 1, alertw5 );
  720.    form_alert( 1, pnt1 );
  721.    form_alert( 1, alertdel );
  722.    form_alert( 1, alertpnt14 );
  723.    form_alert( 1, alertpnt15 );
  724.    form_alert( 1, alertpnt20 );
  725.    form_alert( 1, alertpnt23 );
  726.    form_alert( 1, point_invalid );
  727.    form_alert( 1, point_exists );
  728.    form_alert( 1, point_noroom );
  729.    form_alert( 1, nomore );
  730.    form_alert( 1, showall );
  731.    form_alert( 1, selall );
  732.    form_alert( 1, nosel );
  733.    form_alert( 1, nofile );
  734. }
  735.  
  736. #endif